目次
api関数とは
api関数とは簡単に言うとゲームに命令を出すためのプログラムです。
例えばコードブロックにapi.getPosition(myId)と打つと自分のの現在の位置を取得できます。
このようにapi関数は何かの数値などを取得したり行動を起こしたりなどができる関数なのです。
用語一覧
プレイヤーID
- プレイヤーにはIDと呼ばれる数値が割り振られています。
myId
には自分のIDが入ります
また、api.getPlayerIdで()のところに名前を書くことによりその人のIDを取得することができるlet playerId = api.getPlayerId("TSUTSUN") api.applyImpulse(playerId,0,9,0)これでTSUTSUNというプレイヤーを上に吹っ飛ばすことができる
エンティティID
- ワールドのすべてのエンティティに振り分けられているIDです
人やモブ、矢や落ちたアイテムなどもエンティティです
thisPos
- コードブロックまたはpress to看板の位置が入った変数です
console.log(thisPos)
そのコードブロックが置かれている座標を出力します
数値/文字列/配列/オブジェクト/真偽値
数値
- 1 や -10、1.755 のような「数」を扱うときに使う型です。
文字列
- 「あいうえお」や「かきくけこ」など、テキストをコード内で使いたいときに使う型です。
必ず ""(ダブルクォーテーション)または(シングルクォーテーション)で囲む必要があります!'' ← ここ重要!
配列
- 複数のデータをまとめて扱うときに便利な型です。[](角かっこ)で囲って使います。
〈活用例〉names = ["kentaki","shiroko"];
このように名前を配列に保存しています。要素の区切りには ,(コンマ) を使います。
また配列の~番目の値を取得したいときには、一番目を0として[0番目,1番目,2番目...]
と番号が割り振られているので、配列名[0]や配列名[1]
の形で取得できます
オブジェクト(連想配列)
- データを「キー(名前)」とセットで保存できます。{}(中かっこ)で囲んで使います。
〈活用例〉Birthdays = { kentaki:"7月22日" }名前をnameに誕生日をbirthdayに保存しています
この例では、kentaki がキーで、"7月22日" がそのデータ(値)ですBirthdays = { Zenki: { namae: "1月1日" } Kouki: { kentaki: "7月22日" } }このように、キーの中にキーを入れることもできます。
また、broadcastMessage での使用例は次の通りです:
api.broadcastMessage("あ",{color:"Yellow"})
この {} の中がオブジェクトです
ここでは color というキーに "Yellow" という値を渡しています
真偽値
- 「本当かどうか(はい/いいえ)」を判断するときに使う型です。
戻って来る値は次のどちらかになります:
- true(本当 / 正しい)or
- false(ウソ / 間違い)
〈活用例〉
以下のコードを実行するとtrue(正しい) or false(間違い)が返って来るはずです
api.isAlive(myId); //true
api関数一覧
最初に api. を付けないと発動しないので注意してください
api関数は現在(2025年6月26日の時点)では151個あります
足りない関数があったら埋めてもらえるとありがたいです
プレイヤー関係
ID関連
- getPlayerIds()
ロビーにいる全員のIDを取得します
- getEntityName(プレイヤーID)
プレイヤーのIDから名前を取得します
- getPlayerId("プレイヤー名")
そのプレイヤーの名前からIDを取得します
- getPlayerDbId(プレイヤーID)
そのプレイヤーのIDからDBIDを取得します
- getPlayerIdFromDbId(プレイヤーDbId)
そのプレイヤーのDBIDからIDを取得します
座標関連
- getPosition(プレイヤーID)
プレイヤーの位置を取得します
- setPosition(プレイヤーID,x座標,y座標,z座標)
プレイヤーの位置を指定した座標にセット(テレポート)させます
エフェクト関連
- applyEffect(プレイヤーID, "効果名",効果時間, オプション)
プレイヤーにエフェクトを与えます(効果時間はミリ秒になるので1000と入れた場合は1秒の効果時間になります)
オプションは以下から一つ*1設定できます{ icon:"アイテム名など" DisplayName:"テキスト" inbuiltLevel:数字 }icon
エフェクトのアイコンを変えられます。効果名が普通のバフの場合効きません(たとえば効果名がDamageならば変更されませんが、効果名が"aaaa"などならアイコンが変更されます)
DisplayName
エフェクトの表示名を変更できます。iconと同じ条件で、反映されない場合があります
inbuiltLevel
エフェクトのレベルを変更できます。設定しなかった場合、エフェクトのレベルは3999になります。
- getEffects(プレイヤーID)
プレイヤーのかかってるエフェクトを配列で出力
- removeEffect(プレイヤーID,"効果名")
プレイヤーのエフェクトを消します
アイテム関連
inventoryIsFull(プレイヤーID)
- そのプレイヤーのインベントリの空きがあるかどうかを判別します
clearInventory(プレイヤーID)
- そのプレイヤーのインベントリのアイテムを全部消します
giveItem(プレイヤーID,"アイテム名",個数)
- そのプレイヤーにアイテムを与えます
removeItemName(プレイヤーID,"アイテム名",個数)
- そのプレイヤーの持ってるアイテムを消します
getItemSlot(プレイヤーID)
- そのプレイヤーの現在のスロットにあるアイテムIDを入手します
setItemSlot(プレイヤーID,スロット数,"アイテム名",個数,属性)
- そのプレイヤーのスロットを指定した場所に指定したアイテムと個数にセットします
hasItem(プレイヤーID,"アイテム名")
- そのプレイヤーがそのアイテムを持ってるか判定します
getInventoryItemAmount(プレイヤーID,"アイテム名")
- そのプレイヤーのインベントリにあるアイテムの個数を取得します
getSelectedInventorySlotI
setSelectedInventorySlotI
getHeldItem(プレイヤーID)
- そのプレイヤーのメインハンドにもってるアイテムを取得
getInventoryFreeSlotCount
giveStandardChestItem
setStandardChestItemSlot
setMoonstoneChestItemSlot(プレイヤーID,スロット数,"アイテム名",個数,属性)
- そのプレイヤーのムーンチェストのそのスロットを指定したアイテムと個数に変える
getMoonstoneChestItemSlot(プレイヤーID,スロット数)
- そのプレイヤーのムーンチェストのそのスロットにあるアイテムを取得
getMoonstoneChestItems(プレイヤーID)
- そのプレイヤーのムーンチェストの中身の全部を取得
deleteItemDrop(落ちてるアイテムのid)
落ちてるアイテムを消します
''getStandardChestFreeSlotCount'([x,y,z])'
指定したチェストの空(null)のスロットの数を返します
getStandardChestItemAmount
指定したチェストのスロットにあるアイテムの数を返します
getStandardChestItemSlot
指定したチェストのスロットにあるアイテムの属性をオブジェクトを返します
getStandardChestItems([x,y,z])
指定したチェストのすべてのアイテムの属性をオブジェクトで返します。また空のスロットはnullになります
その他
- playerIsInGame
- playerIsLoggedIn
- getPlayerPartywhenJoined
- getNumPlayers()
ロビーにいる人数を取得します - kickPlayer(playerId)
指定プレイヤーをキックします
ブロック関係
- getBlockCoordinatesPlayerStandingOn
- getBlockTypesPlayerStandingOn
- attemptWorldChangeBlock
- setBlock(x座標,y座標,z座標,"ブロック名")
指定した座標にブロックを置きます - setBlockRect([x座標,y座標,z座標],[x座標,y座標,z座標],"ブロック名")
指定した座標から座標までブロックで埋めます - setBlockWalls
- getBlock(x座標,y座標,z座標)
その座標にあるブロック名を取得します - getBlockId(x座標,y座標,z座標)
その座標のブロックIDを取得します - getBlockSolidity(x座標,y座標,z座標)
その座標にあるブロックが当たり判定を持たないならtrueを、持つならfalseを返します。ブロックがロードされてない場合はtrueになります。waterやair、花などはtrueで、メープルの原木や砂などはfalseです
モブ関係
- attemptSpawnMob("エンティティ名",x座標,y座標,z座標)
- despawnMob(mobid)
そのエンティティをデスポーンさせます - getNumMobs()
ロビーにいるモブの数を取得します - getMobIds()
全モブのIDを取得します - createMobHerd
その他
- getUnitCoordinatesLifeformWithin
- showShoptutorial
- getShieldAmount
- setShieldAmount
- getHealth(プレイヤーID)
そのプレイヤーの体力を取得 - applyHealthChange
- setHealth(プレイヤーID,値,ダメージを与えたプレイヤーのId)
そのプレイヤーの体力を設定(上限は超えません) - applyMeleeHit
- attemptApplyDamage
ダメージを与えます - forceRespawn
プレイヤーを強制的にリスポーンさせます - killLifeform
プレイヤーをモード関係なくキルします - getCurrentKillstreak
- clearKillstreak
- isAlive
プレイヤーが生存しているか - broadcastMessage("メッセージ")
ロビーのチャットにメッセージを打ちます - sendMessage(プレイヤーID,"メッセージ")
そのプレイヤーにメッセージを送ります - sendFlyingMiddleMessage
銃を打った時に出るダメージのような表示をさせることができます - playParticleEffect
パーティクルを表示させます - isBlockInLoadedChunk
- getEmptyChunk
- getMetaInfo
- blockNameToChunkId
- blockIdToBlockName
BlockIdをBlockの名前に変えます - blockCoordToChunkId
- chunkIdToBlockName
- blockCoordToChunkId
- chunkIdToBotLeftCoord
- sendTopRightHelper
アップデート時に右上に出てくるようなメッセージを表示させます - isMobile(プレイヤーID)
モバイル版か否かを判定します - setCantPickUpItem
- getInitialItemMetadate
- getItemStat
- setCameraDirection
- setPlayerOpacity(プレイヤーID,透明度)
0なら透明、1なら不透明になります - setPlayerOpacityForOnePlayer
- checkValid
- setCanChangeBlock(プレイヤーid,x,y,z)
指定座標にあるブロックを変更できるようにします - setCantChangeBlock(プレイヤーid,x,y,z)
指定座標にあるブロックを変更できないようにします - setCanChangeBlockType(プレイヤーid,ブロック名)
指定されたidのプレイヤーは指定されたブロックを破壊できるようになります。 - setCantChangeBlockType(プレイヤーid,ブロック名)
指定されたプレイヤーは第二引数のブロックを破壊できなくなります。 - resetCanChangeBlockType
変更可能に指定されたブロックをリセットします。 - setCanChageBlockRect(プレイヤーid,[x,y,z],[x,y,z])
ブロックが変更可能な領域を設定します - setCantChangeBlockRect(プレイヤーid,[x,y,z],[x,y,z])
上記の逆版。変更不可能な領域を設定。 - resetCanChangeBlockRect
上二つの効果をリセットします - setWalkThroughType
通り抜けられるブロックの種類を決めます - setWalkThroughRect
通り抜けられる領域を設定します - canOpenStandardChest
チェストを開けられるか設定します - getLobbyName()
ロビーの名前を出力します。 - isPublicLobby()
公開ロビーかをはんていします - getLobbyType()
ロビーの種類を取得します - progressBarUpdate
- editItemCraftingRecipes
アイテムのクラフトレシピを変更できます - resetItemCraftingRecipes
上のコマンドの効果をリセットします - isInsideRect
指定した領域の中にエンティティがいるかを判定します - getEntitiesInRect([xの値,yの値,zの値],[x,y,z])
最初の引数から2つ目の引数が対角になる立方体に入っているエンティティのidを配列型で出力します - getEntityType(エンティティID)
エンティティのタイプを取得します - applyImpulse(プレイヤーID,xの値,yの値,zの値)
そのプレイヤーの速度を設定します。どう動いていようとも値の通りの速度になります - setVelocity(プレイヤーID,xの値,yの値,zの値)
そのプレイヤーの速度に加算します。右に歩きながらコードを発動したときと止まりながらコードを発動したときで発動後の速度が変わります - setEntityHeading
- spinKart
- setItemAmount
- sendOverShopInfo
- openShop
- changePlayerIntoSkin
- removeAppliedSkin
- scalePlayerMeshNodes
- updateEntityNodeMeshAttachment
- setPlayerPose
プレイヤーのポーズ(グライダーを使っているポーズなど)を指定します - setPlayerPhysicsState
- getPlayerPhysicsState
- addFollowingEntityToPlayer
ほかのエンティティを特定のプレイヤーに追従させます - removeFollowingEntityFromPlayer
上の効果をリセットします - setCameraZoom(プレイヤーid,ズームの度合い)
プレイヤーのズームの度合いを変更します。大きければ大きいほどカメラが遠くに行きます。0以下は一人称になります。値に応じて自動的に一人称と三人称が切り替わります - playSound
音を鳴らします - broadcastSound
全員に向けて音を鳴らします - playClientPredictedSound
- calcExplosionForce
- getPlayerTargetInfo
- getPlayerFacingInfo
- raycastForBlock
- now()
1970年1月1日午前0時0分0秒からの経過時間(エポック秒/UNIX秒)を出力します。api.now()とdate.now()は同じです - getChunk
- isPlayerCrouching(プレイヤーid)
プレイヤーがしゃがんでいるならtrueを、そうでないならfalseを出力します - log("メッセージ")
ログを出力します - setAuraLevel(プレイヤーId, レベル)
経験値レベルをセットします。
表
by ryoku_
- pId
- プレイヤーのId
- mId
- モブのId
- eId
- エンティティのId(モブ、プレイヤーを含む)
- lId
- pId + mId
座標関連
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| getPosition | eId | 座標を取得 | [13.3405...,2,-3.904..] |
| setPosition | eId x,y,zまたは[x,y,z] :座標 | 座標を変更 | (一瞬でワープ) |
| getUnitCoordinatesLifeformWithin | eId | 生命体の角の座標 | [ [13,2,-5],[13,3,-5], [12,2,-5], [12,3,-5],[13,2,-4], [13,3,-4],[12,2,-4],[12,3,-4]] |
| isInsideRect | coordsToCheck :確認したい座標 pos1, pos2,addOneToMax | 直方体のなかにその座標があるか | boolean*2 |
| getEntitiesInRect | minCoords, maxCoords os1,2と同じ解釈でok | 範囲内のeId(dropItemも含む) | eId |
| calcExplosionForce | eId :実験対象 explosionType :0以外無効 knockbackFactor(num) :ノックバック量 explosionRadius(num) :爆発範囲 explosionPos(pos) :爆弾の位置 ignoreProjectiles(真偽値) :発射物の無視/わからない | 爆発したら、という演算 | |
| getPlayerTargetInfo | pId | ターゲットブロックを取得 | { position: Pos; normal: Pos; adjacent: Pos } |
| getPlayerFacingInfo | pId | カメラの位置とアイテムの使用方向取得 | { camPos: Pos; dir: Pos; angleDir: AngleDir; moveHeading: number } |
サーバー情報
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| getPlayerIds | 無 | 現在いるプレイヤーのIdを取得 | ["-1","-5"] |
| getNumPlayers | 現在いるプレイヤーの数を取得 | number | |
| getMobIds | 現在いるモブ のIdを取得 | ["-2","-3","-4"] | |
| getNumMobs | 現在いるモブ の数を取得 | number | |
| now | 現在のtick*3の開始時に保存されたData.nowの値 | ||
| getLobbyName | ロビー名 | ||
| isPublicLobby | 公開されているか | 整数は公開 | |
| getLobbyType | 特別なロビー(Discord,DMなど)かどうか |
プレイヤー関連
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| playerIsInGame | pId | プレイヤーがいるかどうか | true か false |
| playerIsLoggedIn | プレイヤーはログインしているか | ||
| getPlayerPartyWhenJoined | プレイヤーが参加時に入っていたパーティー | null か {"playerDbids":["Vqkj12sBFK_2wpcaFcWGz","msdd73vGD17hhcBQQeDCc"]} | |
| getCurrentKillstreak | 連続kill数を得る | 0 | |
| getEntityName | eId | エンティティの名前を得る | "ryoku_" |
| getPlayerId | playerName :プレイヤーの名前 | プレイヤー名→プレイヤーId | "-1" |
| getPlayerDbId | pId | プレイヤーId→プレイヤーDbId*4 | "Vqkj12sBFK_2wpcaFcWGz" |
| getPlayerIdFromDbId | pDbId | プレイヤDbId→プレイヤーId | nullか"-1" |
| isMobile | pId | モバイルかどうかの判断 | false |
| isPlayerCrouching | pId | しゃがんでいるか | 真偽値→true |
ブロック
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| getBlockCoordinatesPlayerStandingOn | pId | プレイヤーが立っている4ブロックの座標 | [ [11,0,-5],[10,0,-5],[11,0,-4],[10,0,-4] ] |
| getBlockTypesPlayerStandingOn | プレイヤーが立っている4ブロックの種類 | ["Code Block","Red Bed","Code Block"] | |
| isBlockInLoadedChunk | x, y, z | そのブロックは読み込まれているか | trueかfalse |
| getBlock | x, y, z または配列[x, y, z] | そのブロックは何か | "_Red Bed Head" |
| getBlockId | そのブロックIdは何か | 452 | |
| setBlock | x, y, z (または配列[x, y, z]) blockName :ブロック名 | ブロックを設置 api.setOptimisations(false)を終了後に使うと良いらしいが、詳細不明 | - |
| attemptWorldChangeBlock | initiator*5DbId x,y,z, blockName :ブロック名 | 「ワールドによる」ブロック変更を開始。 | 引数は6必要らしい |
| getBlockSolidity*6 | x, y, z | そのブロックは固体(通り抜けられない)かどうか | true |
| setBlockRect | pos1, pos2, blockName :ブロック名 | 中身がつまった直方体を作成 | - |
| setBlockWalls | pos1, pos2, blockName :ブロック名 hasFloor :床の有無, hasCeiling :天井の有無 | 中身の詰まっていない直方体を作成 | |
| getChunk | pos | その座標を含むチャンクには何があるか https://www.npmjs.com/package/ndarray | 殆どの場合繰り返し過ぎでエラーが出る。 |
| getEmptyChunk | 無 | 説明読んでもわからない | |
| blockCoordToChunkId | pos | その座標を含むチャンクId | "0 0 -1" |
| chunkIdToBotLeftCoord | chunkId | そのチャンクの最小の値を持つ座標、つまり端 | [0,0,-32] |
| setCanChangeBlock | pId x, y, z | 指定した座標 のブロックを変更 可能に | - |
| setCantChangeBlock | 指定した座標 のブロックを変更不可能に | ||
| setCanChangeBlockRect | pId pos1, pos2 | 指定した座標内のブロックを変更 可能に | |
| setCantChangeBlockRect | 指定した座標内のブロックを変更不可能に | ||
| resetCanChangeBlockRect | 指定した座標内のブロックの変更設定を削除 | ||
| setCanChangeBlockType | pId blockName | 指定した種類 のブロックを変更 可能に | |
| setCantChangeBlockType | 指定した種類 のブロックを変更不可能に | ||
| resetCanChangeBlockType | 指定した種類 のブロックの変更設定を削除 | ||
| setWalkThroughRect | pId pos1, pos2 updateType(0 :通れない 1 :通れる 2:デフォルトに戻す) | 指定した座標内のブロックの通過設定 | |
| setWalkThroughType | pId blockName disalbe(false :通れる true :通れない) | 指定した種類 のブロックの通過設定 | |
| raycastForBlock | fromPos(pos1) :始点 dirVec(pos2) :通過点 | 二点を通る直線の視線"Ray"が最初に当たる座標を取得 |
アイテム
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| getMetaInfo | blockName | メタ情報を取得(公式ではブロック名となっているが、アイテムでも可) | 長過ぎるため省略 |
| blockNameToBlockId | blockName allowInvalidBlock :無効な場合エラーを出さないようにするか | ブロック名→ブロックId | 1510 |
| blockIdToBlockName | blockId | ブロックId→ブロック名 さっきのの逆 | "Code Block" |
| getInitialItemMetadata | itemName | クライアントオプション変更前のブロック/アイテムのメタデータ | 長過ぎるため省略 |
| getItemStat | pId itemName stat : | ブロックまたはアイテムのステータス情報を取得 | 未検証 |
| giveItem | pId itemName itemAmount :量 attributes*7 :詳細情報*8 | アイテムを与える | 10(与えた量) |
| inventoryIsFull | pId | インベントリがフルか | false |
| getInventoryFreeSlotCount | インベントリの空き枠数 | ||
| setItemSlot | pId itemSlotIndex :スロット番号*9 itemAmount :量 公式では-1で無限とあるが、うまくいかない attributes :giveItem参照 tellClient :クライアントに通知*10 | スロットのアイテムを設定 | - |
| removeItemName | pId itemName amount | アイテムを削除 | - |
| getHeldItem | pId | 現在手に持っているアイテム | |
| hasItem | pId itemName | そのアイテムを1つでも持っているか | true |
| getInventoryItemAmount | そのアイテムの量 | 0 | |
| clearInventory | pId | インベントリをクリア | - |
| getSelectedInventorySlotI | 選択中のスロットI番目を取得 | ||
| setSelectedInventorySlotI | pId newI :番号I | スロットI番目を選択 | |
| getItemSlot | pId itemSlotIndex | スロットのアイテムを取得 | null |
| editItemCraftingRecipes | pId itemName recipesForItem :クラフト個数、コストなど | クラフト改造 | |
| resetItemCraftingRecipes | pId itemName | そのアイテムのレシピを削除 |
チェスト
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| canOpenStandardChest | playerId chestX, chestY, chestZ | そのチェストを開けられるか。プロテクターに加え、openChestのコールバックも審査される | true/false :開けられるか void :存在しない |
| giveStandardChestItem | chestPos itemName &brl; itemAmount pId :実行者 attributes | チェストにアイテムを与える | アイテム量 |
| getStandardChestFreeSlotCount | chestPos | チェストの空きスロット数 | number(null :チェストでない) |
| getStandardChestItemAmount | chestPos itemName | チェストにいそのアイテムが含まれているか | number(負の数 :無限、0 :なし) |
| getStandardChestItemSlot | chestPos idx :スロット番号 | そのスロットに何があるか | {name: itemName, amount: amountOfItem} (null :空) |
| getStandardChestItems | chestPos | 全てのアイテムを順に取得 | |
| setStandardChestItemSlot | chestPos idx :ここ以外はgiveと一緒 itemName itemAmount pId attributes | 指定スロットのアイテムを設定 | |
| getMoonstoneChestItemSlot | pId idx | そのスロットに何があるか | |
| getMoonstoneChestItems | pId | ムンチェ*11の全てのアイテムを順に取得 | |
| setMoonstoneChestItemSlot | pId idx itemName itemAmount metadata :attributesと同じ | ムンチェの指定スロットのアイテムを設定 |
演出
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| showShopTutorial | pId | ショップチュートリアルを見せる(サバにつき一回だけ) | (SHOP ▢Bと表示) |
| broadcastMessage | message style({ fontWeight?: 数または文字列, color?: 文字列 }) | 全員にメッセージを放送 | メッセージ |
| sendMessage | pId message style (上を参照) | 個人にメッセージを再生 | メッセージ |
| sendFlyingMiddleMessage | pId message distanceFromAction :再生時間 | エフェクト受けたときに出る真ん中のあれを出す | - |
| playParticleEffect | opts clientPredictedBy | パーティクルを再生 | 情報求むうううううう |
| sendTopRightHelper | pId icon :font-awesomeの任意のアイコンに text :送信するテキスト | 右上のメッセージを送信 | - |
| setCameraDirection | pId direction :向き[回転,回転,回転] | 見ている方向を設定 | - |
| progressBarUpdate | pId toFraction :割合 toDuration :設定完了までの時間 | 人狼の右下の銃クールダウンのバー | - |
| openShop | pId toggle :既に開いてたら閉じるか forceCategory :項目(任意) | ショップを開く | |
| sendOverShopInfo | pId info :メッセージ | Bought Messageを表示。グリーンビルで家買った表示 | |
| changePlayerIntoSkin | pId partType :体の部位 selected :スキン | プレイヤーのスキンの一部を変更 | |
| removeAppliedSkin | pId | 一時的なスキン↑を消す | |
| scalePlayerMeshNodes | pId nodeScales :大きさ | 体の部位ごとの大きさ設定 | |
| updateEntityNodeMeshAttachment | eId node, type :nullなら消す, opts, offset, rotation | ブロックを加える | |
| setPlayerPose | pId pose | ゾンビなどのポーズを設定 | |
| setCameraZoom | pId zoom(number) :ズーム度 | カメラズーム設定 | |
| playSound | pId soundName :音の種類 volume(0-1) :音量 rate(0.5~4) :再生速度、ピッチ*12 posSetting({playerIdOrPos(pId か 座標[]) :発信源; maxHearDist :音が聞こえる最大範囲; refDistance :どの範囲から音量を下げるか} | 音を再生 | |
| broadcastSound | soundName volume rate posSettings exceptPlayerId :除外するプレイヤー | 音を全員に放送 | |
| playClientPredictedSound | soundName volume rate posSettings predictedBy(pId) :除外 | 音を再生 | |
| clearKillstreak | pId | 連続kill数を削除 | - |
その他出力
| 関数 | 引数 | 説明 |
|---|---|---|
| kickPlayer | pId reason :理由 | KICKする:(Error Kicked:理由) |
| applyImpulse | eId xImpulse, yImpulse, zImpulse :移動量 | ノックバックさせる |
| setVelocity | eId x,y,z : | 速度を設定。うまくいきにくく↑をおすすめ |
| setEntityHeading | eId newHeading : | 向きを設定/不明 |
| spinKart | pId dirt(-1 :左, 1 :右) durationInTicks :回転時間 | カート内のプレイヤーを回す/不明 |
| applyEffect | lId effectName :効果, duration :効果時間, customEffectInfo({{ icon?*13: アイコンを設定。bloxdアイテム名かIngameIcons.tsのアイコン; onEndCb?: () => void :効果が終わってからの処理。ほぼうまくいかない; displayName?: 効果のカスタムネーム}) 任意) | エフェクトを追加 |
| getEffects | lId | 現在の効果を全て出力/string[] →["Speed","Damage"] |
| removeEffect | lId &be; name :効果 | 効果を削除 |
| setPlayerPhysicsState | pId physicsState | プレイヤーの物理状態(Glidingなど)の変更 |
| getPlayerPhysicsState | pId | プレイヤーの物理状態を取得 |
| addFollowingEntityToPlayer | pId eId offset :座標と同じ形 | 追従エンティティを追加 |
| removeFollowingEntityFromPlayer | pId &brl eId | 追従エンティティを削除 |
| getAuraInfo | pId | プレイヤーの経験値情報取得:{ level(num); totalAura*14(num); auraPerLevel(num) } |
| setTotalAura | pId totalAura | レベルを設定 |
| applyAuraChange | pId auraDiff(num) :変化量 負の数で減少 | 経験値量に変化を与える: 実際の変化量(num)→1000 |
HP
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| getShieldAmount | lId | シールド値を得る | 0 |
| setShieldAmount | lId newShieldAmount :設定値 | シールド値を設定 | - |
| getHealth | lId | HP値を得る | 100 |
| setHealth | lId newHealth :設定値 whoDidDamage({lifeformId:LifeformId;withItem:string} :ダメージの判定 increaseMaxHealthIfNeeded :マックスHPを超えても中断しないか) | HP値を設定 | false(死んだか) |
| applyHealthChange | lId changeAmount :変更量 whoDidDamage :上を参照 broadcastLifeformHurt :ダメージ音を鳴らすか | HP値を変更 | |
| attemptApplyDamage | うまくいったことがない。 | ||
| forceRespawn | pId [respawnPos] :リスポーン場所 | 強制的にリスポーン | - |
| killLifeform | lId whoKilled :setHealthを参照 | HP変更無しでクリエでも死ぬ | - |
| isAlive | lId | 生きてるか | true |
| applyMeleeHit | hittingEId:加害者 hitEId:被害者 dirFacing:加害者の状態 bodyPartHit:損傷部位 overrides*15 | ヒットしたようにする | true(当たったか) |
クライアントオプション
https://github.com/Bloxdy/code-api/blob/main/CALLBACKS.md
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| getClientOption | pId option :設定名 | クライアントオプションの値を得る | - |
| setClientOption | pId option :設定名 value :設定 | クライアントオプションを設定 | |
| setClientOptions | pId optionsObj({設定A: 10, 設定B :20}など) :設定と値をペアで | ||
| setClientOptionToDefault | pId option :オプション名 | クライアントオプションを元に戻す |
他設定
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| setTargetedPlayerSettingForEveryone | targetedPlayerId :設定するpId settingName :設定名 settingValue :設定値 includeNewJoiners :今後参加するプレイヤーにも同じように見せるか | それぞれのプレイヤーに対する設定をセット(あちら側からの見え方) | 未検証 |
| setEveryoneSettingForPlayer | こちら側からの見え方 | 未検証 | |
| setOtherEntitySetting | relevantPlayerId targetedEntityId settingName :設定名 settingValue :設定値 | 特定のエンティティに対するプレイヤーの設定 | 未検証 |
| setOtherEntitySettings | relevantPlayerId targetedEntityId settingsObject({設定A: 10, 設定B: 20}など) :設定と値をペアで | 未検証 | |
| getOtherEntitySetting | relevantPlayerId targetedEntityId settingName | 設定を得る | 未検証 |
| setPlayerOpacity | pId opacity :不透明度 | プレイヤーの不透明度設定 | 一人称での自分の胴体の設定 |
| setPlayerOpacityForOnePlayer | playerIdWhoViewsOpacityPlayer : playerIdOfOpacityPlayer : opacity :不透明度 | プレイヤーAがBを見るときの不透明度設定 | わからない |
モブ設定
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| getDefaultMobSetting | mobType setting | その種類のモブの設定の値を取得 | |
| setDefaultMobSetting | mobType &brl setting value | その種類のモブの設定の値を設定 | |
| getMobSetting | mobId setting | その個体の設定の値を取得 | |
| setMobSetting | mobId setting value | その個体の設定の値を設定 |
エンティティとモブ
| 関数 | 引数 | 説明 | 結果の例 |
|---|---|---|---|
| createItemDrop | x,y,z itemName amount :量 mergeItems :他のドロップアイテムにくっつくか | ドロップアイテムの作成 | "-2" |
| setCantPickUpItem | pId itemId :createItemDropで渡される値 | ドロップアイテムを拾えなくする | - |
| deleteItemDrop | itemId :上記 | ドロップアイテムを削除 | - |
| checkValid | eId | それがサーバーにまだ存在するか | true |
| getEntityType | eId | エンティティのタイプ | "Frost Zombie" |
| createMobHerd | ともに行動するモブチームを作成(パーティーIDが生成されるイメージ。モブは出てこない) | mobHerdId | |
| attemptSpawnMob | mobType :モブの種類 x,y,z :座標 opts({mobHerdId, spawnerId(pId), mobDbId, name(string), playSoundOnSpawn(boolean), variation :スキン}) | モブをスポーンさせようとする | |
| despawnMob | mId | 処理を放棄しモブを確実に消す | |
| setItemAmount | itemId newAmount | ドロップアイテムの量を変更 |
コメント
- api関数一覧作ってみた。Iとlが間違ってるかもしれませんすみません。 -- TSUTSUN 2025-05-07 (水) 10:21:52
- すごいね -- めぐ 2025-05-07 (水) 17:01:56
- あざます -- TSUTSUN 2025-05-07 (水) 17:06:47
- まだ書いてない構文とか関数とか教えてくれたら嬉しいです -- TSUTSUN 2025-05-07 (水) 17:07:30
- 時間があるときに例文追加しとくわ -- 2025-05-07 (水) 20:28:36
- なんか萎えたわ -- けんたき 2025-05-07 (水) 21:27:08
- あ、ページ更新の衝突起きましたか?すみません -- TSUTSUN 2025-05-07 (水) 21:31:43
- ケンタッキーさんだいぶすごいと思うよ。 -- aaa_ 2025-05-07 (水) 22:07:20
- 俺が関数全部書き出したんだけどなぁ…w -- TSUTSUN 2025-05-08 (木) 10:05:23
- またかよページ変更の衝突 -- TSUTSUN 2025-05-08 (木) 10:30:54
- おそらく自分と衝突してるのかと思います。一回ページを更新したら少しだけ時間を開けてからまた編集し始めれば起きないと思います -- aaa_ 2025-05-08 (木) 10:45:32
- そうなんですね ありがとうございます -- TSUTSUN 2025-05-08 (木) 11:31:47
- こんなのすごくねえよ俺のほうがすごい -- みこまる 2025-05-19 (月) 10:26:35
- イキリキャラ登場してて草 俺のほうがすごいとガチイキリやんマジ尊敬っすわ -- TSUTSUN 2025-05-19 (月) 12:45:42
- しかもなりすましっていうね -- aaa_ 2025-05-19 (月) 14:16:46
- applyeffectの効果時間はミリ秒ですよ -- ぶるう 2025-05-19 (月) 16:57:32
- 適当に更新しました -- ぶるぅ 2025-05-19 (月) 17:24:30
- あ、ぶるうさんありがとうございます -- TSUTSUN 2025-05-19 (月) 22:24:02
- 看板のexecuteみたいにコードブロックから別の場所の看板を動作する方法ってどうやるんですかね -- sado 2025-06-11 (水) 16:12:14
- api.now直しておいた -- けんたき 2025-06-12 (木) 18:09:22
- あとプレイヤーのゲームモードをゲットするやつってどうやるんだ(他力本願) -- sado 2025-06-12 (木) 18:24:04
- それはできん -- けんたき 2025-06-12 (木) 23:28:41
- api.getClientOption(myId,"creative")でクリエとスペクかそれ以外(クリエインベントリと空中浮遊が使える状態かどうか)は区別できたはず。
単体で区別するコードはないけど体力の有無とブロックの設置破壊が可能かの確認するコードと組み合わせれば似たようなものは作れるかも。 -- 2025-06-13 (金) 01:22:31 - どうやったら文字の色を変えられるんですか? -- 2025-06-16 (月) 15:44:08
- チャット欄にコードで言葉を表示するやつなどのことでしょうか? -- aaa_ 2025-06-16 (月) 16:03:49
- setBlockrectってairも対象になるんですか -- とまと 2025-06-21 (土) 10:46:52
- はい -- sado 2025-06-21 (土) 11:53:57
- Playerのgamemodeを変えるcodeってありますか? -- とまと 2025-06-22 (日) 11:10:07
- 普通にpress to gmじゃダメかな? -- aaa_ 2025-06-22 (日) 11:55:26
- できればcodeでお願いしたいです、、、とまと -- 2025-06-23 (月) 18:19:24
- あの日本人ランクpvpである、チャットが自分の称号みたいなのが表示されるのってどうやってやるんですか -- とまと 2025-06-24 (火) 18:05:56
- お...omg...TSUTSUNすげぇ...(引き) -- www6202 2025-06-27 (金) 20:15:46
- 6202だ -- 亡霊 2025-06-30 (月) 13:06:28
- まじでcodeblockの文字化けどうにかならないか?... -- ryoku_ 2025-07-03 (木) 18:18:36
- {icon:"アイテム名など"DisplayName:"テキスト"inbuiltLevel:数字}ここinvuiltになってたからinbuiltに勝手に直したわ。 -- 2025-07-04 (金) 17:52:50
- ClientOptionとかもめちゃあるねぇ -- ワタス 2025-07-05 (土) 00:34:14
- setAuraLevelがsetAureLevelになってます -- ィェィ 2025-07-31 (木) 09:06:15
- コードブロックでブロック敷き詰める方法を教えてください -- たこやき 2025-08-25 (月) 10:25:11
- ブロック関連を見てから言ってください。あとできるだけQandAを用いるようにお願いします。
api.setBlockRect(pos1,pos2,"block")です。 -- ryoku_ 2025-08-26 (火) 15:45:26 - プレイヤーが特定のブロックを踏んだときにイベントが起こるやつってどれ -- 2025-08-29 (金) 14:18:19
- QandA使ってください。onBlockStand = (playerId, x, y, z, blockName) => {}です。 -- ryoku_ 2025-08-29 (金) 14:31:55
- press to messageみたいに真ん中に文字を表示されるapiありますか? -- Haru 2025-08-29 (金) 20:51:39
- 聞いてますかね?QandA使ってください。 -- ryoku_ 2025-08-30 (土) 06:34:07
- https://github.com/Bloxdy/code-api/commit/0783641fb146d1672edd1032cf5e11ced9bdde05 に重要な更新があったので貼っておきます -- RS 2025-09-03 (水) 16:05:46
- 大規模に編集しました。表を追加しています。後々時間があるときに統合していくので、少し編集せずにお待ち下さいー。 -- ryoku_ 2025-09-09 (火) 17:29:41
- めっちゃ見やすくていいね👍️ -- けんたき 2025-09-14 (日) 13:38:44
- PvP鯖作るのって大変だぁ、このページめちゃ役に立つ。てか手抜きしたらもっと簡単だったかなw?でも異能力とかカッコいいから作りたいって感じ。なろう系バンザイ! -- 社畜 2025-10-30 (木) 12:47:41
- これってオーナーじゃなくても使えるんやろ? -- huirun_huihui 2025-11-17 (月) 14:59:47
- Co-ownerなら使えるで -- 2025-11-17 (月) 16:13:14
- setCantPickUpItemとdeleteItemDropに渡される引数はitemIdではなくeIdではないのでしょうか。実際setBlockRectで渡されたeIdでdeleteItemDropできたので。あと名前のところはゲーム内の名前にしないほうがいいですかね -- LAW1_SushiPal_JP_NZO 2025-11-21 (金) 11:17:29
- 間違えました、setBlockRectではなく、getEntitiesInRectですね。 -- LAW1_SushiPal_JP_NZO 2025-11-22 (土) 09:43:18
- あなたは何を言っているのでしょうか。 eIdの中にitemIdが含まれているのですよ。それができたのはたまたまgetEntitiesInRectでitemIdのみを取得できたためです。中にプレイヤーがいれば話は変わってきます。 -- ryoku_ 2025-11-22 (土) 09:46:10
- 僕のCodeではgetEntityTypeでItemなら消すように実行していたことを忘れていました。ごめんなさい。 -- LAW1_SushiPal_JP_NZO 2025-11-26 (水) 16:19:47
- ryokuさんの表には『itemId : createItemDropで渡される値』と記載されていましたので、『getEntityTypeで"Item"と判定されるeId』のように表現を変更してみてはいかがでしょうか、と本当はお伝えしたかったです。 -- LAW1_SushiPal_JP_NZO 2025-11-26 (水) 16:21:58
- AIにCodeAPIのReadme渡したほうが高品質なのできそu(( -- SUshiPal 2025-12-03 (水) 12:06:19
- ここはコマンドブロック系ページ? -- potetosarada114 2025-12-06 (土) 09:48:30
- Sushipal,君はこのページが高品質でないと言いたいのかい?それにAIはそんなに高性能じゃないよ? -- yuuto 2025-12-06 (土) 12:47:06
- ごめんなさい!!
僕AI主義者でCodeとかも全部AIに作らせてるので -- 2025-12-17 (水) 11:27:16
os1,2と同じ解釈でok
任意)